import Vue from 'vue'
import axios from 'axios'
import { Message} from "element-ui";
import router from "../router";


// 创建ajax实例并设置请求超时时间
const ajax = axios.create({
  baseURL: '/api',
  timeout:100000
});





ajax.interceptors.request.use((config) => {
  console.log('请求',config);
  const token = sessionStorage.getItem('token');
  if (token) {
    // 给请求头加上token
    config.headers['Authorization'] = token;
  }
  return config;
}), (err) => {
  console.log('请求异常',err);
}



//响应拦截器 即后端响应的信息
ajax.interceptors.response.use((res) => {
  if (!res.data.flag){
    Message.error(res.data.Message);
  }
  return res;
  }, (err) => {
  console.log('异常',err.response);
  // 三个等号：绝对等于0=0 0！=’0‘  双等号：0=0 0=’0‘
  if (err.response.status === 400){
     Message.error(err.response.data.message);
  } else if (err.response.status === 401){
    Message.error('您未登录，请登录后操作！');
    sessionStorage.clear();
    // 跳转到登录
    router.replace('/login');
  }else if (err.response.status === 403){
    Message.error(err.response.data.message);
  }else if (err.response.status === 405){
    Message.warning('请求方法错误-->后端需要"' + err.response.headers.allow + '"请求');
  }else if (err.response.status === 404){
    Message.error('后端接口未找到！');
  }else if (err.response.status === 401){
    Message.error('后端异常-->'+err.response.data.message);
  }else {
    Message.error('未知错误！');
  }
});

Vue.prototype.$ajax = ajax


// 暴露ajax
export default ajax;
